home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Games / Arashi 1.1.1 / source code / Game Source / jam src / GameEvent.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-03-18  |  2.2 KB  |  121 lines  |  [TEXT/KAHL]

  1. /*/
  2.      Project Arashi: GameEvent.c
  3.      Major release: Version 1.1d2, 9/5/95
  4.  
  5.      Last modification: Thursday, March 18, 1993, 14:52
  6.      Created: Friday, March 1, 1991, 4:46
  7.  
  8.      Copyright © 1991-1993, Juri Munkki
  9. /*/
  10.  
  11. #include "VA.h"
  12. #include "STORM.h"
  13. #include "Shuddup.h"
  14. #include "PlayOptions.h"
  15.  
  16. extern    EventRecord    Event;
  17.  
  18. int        HandleGameEvent(flag)
  19. int        flag;
  20. {
  21.     int            handled=1;
  22.     WindowPtr    thewind;
  23.     int            makesound=0;
  24.     
  25.     if(flag)
  26.     {    switch(Event.what)
  27.         {    case keyDown:
  28.             case autoKey:
  29.                 switch(Event.message & 0xFF)
  30.                 {    case '-':
  31.                     case '_':        SKVolume(Vv.volume-1);
  32.                                     break;
  33.                     case '+':
  34.                     case '=':        SKVolume(Vv.volume+1);
  35.                                     break;
  36.  
  37.                     case 9:            PlayOptions->absMoveFlag = 0;
  38.                                     makesound=1;
  39.                                     break;
  40.  
  41.                     case 0x1D:        PlayOptions->rotationType=0;
  42.                                     PlayOptions->absMoveFlag=1;
  43.                                     makesound=1;
  44.                                     break;
  45.  
  46.                     case 0x1C:        PlayOptions->rotationType=1;
  47.                                     PlayOptions->absMoveFlag=1;
  48.                                     makesound=1;
  49.                                     break;
  50.  
  51.                     case 0x1E:        PlayOptions->rotationType=2;
  52.                                     PlayOptions->absMoveFlag=1;
  53.                                     makesound=1;
  54.                                     break;
  55.  
  56.                     case 0x1F:        PlayOptions->rotationType=3;
  57.                                     PlayOptions->absMoveFlag=1;
  58.                                     makesound=1;
  59.                                     break;
  60.         
  61.                     default:        handled=0;
  62.                                     break;
  63.                 }
  64.                 break;
  65.             case updateEvt:
  66.                 thewind=(WindowPtr)Event.message;
  67.                 BeginUpdate(thewind);
  68.                 SetPort(thewind);
  69.                 ForeColor(blackColor);
  70.                 PaintRect(&thewind->portRect);
  71.                 EndUpdate(thewind);
  72.                 SetPort(VA.window);
  73.  
  74.             default:
  75.                 handled=0;
  76.                 break;
  77.         }
  78.         if(handled)
  79.             Event.what=0;
  80.     }
  81.     else
  82.     {    Event.what=0;
  83.     }
  84.     
  85.     if(makesound)
  86.     {    PlayA(PhazerOut,999);
  87.         PlayB(Bonk,999);
  88.     }
  89.     
  90.     return handled;
  91. }
  92.  
  93. void    GameEvent()
  94. {
  95.     if(PlayOptions->noBackgroundTasks)    HandleGameEvent(GetOSEvent(everyEvent, &Event));
  96.     else                                HandleGameEvent(GetNextEvent(everyEvent,&Event));
  97. }
  98.  
  99. int        GamePeekEvent()
  100. {
  101.     int        flag;
  102.     int        stop;
  103.     
  104.     stop = 0;
  105.     if(PlayOptions->noBackgroundTasks)    flag = OSEventAvail(everyEvent, &Event);
  106.     else                                flag = EventAvail(everyEvent, &Event);
  107.         
  108.     if(flag)
  109.     {    flag=HandleGameEvent(flag);
  110.         if(flag)
  111.         {    if(PlayOptions->noBackgroundTasks)
  112.                     GetOSEvent(everyEvent, &Event);
  113.             else    GetNextEvent(everyEvent,&Event);
  114.         }
  115.         else
  116.         {    stop = 1;
  117.         }
  118.     }
  119.     
  120.     return stop;
  121. }